package bpmn.diagram.edit.policies;

import org.eclipse.gef.commands.Command;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;

import bpmn.diagram.edit.commands.ComplexCreateCommand;
import bpmn.diagram.edit.commands.DataBasedCreateCommand;
import bpmn.diagram.edit.commands.DataObjectCreateCommand;
import bpmn.diagram.edit.commands.EndCreateCommand;
import bpmn.diagram.edit.commands.InclusiveCreateCommand;
import bpmn.diagram.edit.commands.IntermediateCreateCommand;
import bpmn.diagram.edit.commands.ParallelCreateCommand;
import bpmn.diagram.edit.commands.StartCreateCommand;
import bpmn.diagram.edit.commands.Task2CreateCommand;
import bpmn.diagram.edit.commands.Task3CreateCommand;
import bpmn.diagram.edit.commands.Task4CreateCommand;
import bpmn.diagram.edit.commands.Task5CreateCommand;
import bpmn.diagram.edit.commands.Task6CreateCommand;
import bpmn.diagram.edit.commands.Task7CreateCommand;
import bpmn.diagram.edit.commands.Task8CreateCommand;
import bpmn.diagram.edit.commands.Task9CreateCommand;
import bpmn.diagram.edit.commands.TaskCreateCommand;
import bpmn.diagram.providers.Bpmn_1_1ElementTypes;

/**
 * @generated
 */
public class ProcessCompartmentProcessItemSemanticEditPolicy extends
		Bpmn_1_1BaseItemSemanticEditPolicy {

	/**
	 * @generated
	 */
	public ProcessCompartmentProcessItemSemanticEditPolicy() {
		super(Bpmn_1_1ElementTypes.Process_3001);
	}

	/**
	 * @generated
	 */
	protected Command getCreateCommand(CreateElementRequest req) {
		if (Bpmn_1_1ElementTypes.Task_3002 == req.getElementType()) {
			return getGEFWrapper(new TaskCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3009 == req.getElementType()) {
			return getGEFWrapper(new Task2CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3014 == req.getElementType()) {
			return getGEFWrapper(new Task3CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3015 == req.getElementType()) {
			return getGEFWrapper(new Task4CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3016 == req.getElementType()) {
			return getGEFWrapper(new Task5CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3017 == req.getElementType()) {
			return getGEFWrapper(new Task6CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3018 == req.getElementType()) {
			return getGEFWrapper(new Task7CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3019 == req.getElementType()) {
			return getGEFWrapper(new Task8CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Task_3020 == req.getElementType()) {
			return getGEFWrapper(new Task9CreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Start_3003 == req.getElementType()) {
			return getGEFWrapper(new StartCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Intermediate_3004 == req.getElementType()) {
			return getGEFWrapper(new IntermediateCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.End_3005 == req.getElementType()) {
			return getGEFWrapper(new EndCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.DataObject_3006 == req.getElementType()) {
			return getGEFWrapper(new DataObjectCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Inclusive_3010 == req.getElementType()) {
			return getGEFWrapper(new InclusiveCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Complex_3011 == req.getElementType()) {
			return getGEFWrapper(new ComplexCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.Parallel_3012 == req.getElementType()) {
			return getGEFWrapper(new ParallelCreateCommand(req));
		}
		if (Bpmn_1_1ElementTypes.DataBased_3013 == req.getElementType()) {
			return getGEFWrapper(new DataBasedCreateCommand(req));
		}
		return super.getCreateCommand(req);
	}

}
